// 透明函数
// 参数1：元素对象：ele
// 参数2：目标值：target
// 参数3：回调函数：连续动画，fn

function fadeTo(ele, target, fn) {
    // 1. 先清理动画效果
    clearInterval(ele.timeId)
    // 2. 开始定时器
    ele.timeId = setInterval(function () {
        // 3. 拿到元素原来的透明度：小数parseFloat
        let current = parseFloat(getComputedStyle(ele).opacity)
        // console.log(current)
        // 4. 计算步长：(目标 - 当前) * 0.1
        let step = (target - current) * 0.1
        // console.log(step)    // 小数没有办法取整（要么是0，要么1）
        // * 其他步骤
        // 4.1 放大100倍
        step *= 100
        // 4.2 取整：安全判定
        if (step > 0) step = Math.ceil(step)
        else step = Math.floor(step)

        // console.log(step)
        // 5. 修改元素的透明度
        ele.style.opacity = current + step / 100
        console.log(current, step);
        // 6. 结束（判定）：透明度达到目标
        if (step == 0) {
            clearInterval(ele.timeId)

            // 回调函数
            if (typeof fn == 'function') fn()
        }
    }, 5)
}